package br.com.sgpv2.controler.indicadorEconomico;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import br.com.sgpv2.controler.contribuicaoPrevidenciaria.ContribuicaoPrevidenciariaController;
import br.com.sgpv2.entity.impostorenda.ImpostoRenda;
import br.com.sgpv2.entity.indicadoreconomico.IndicadorEconomico;
import br.com.sgpv2.entity.indicadoreconomico.IndicadorEnum;
import br.com.sgpv2.entity.indicadoreconomico.MotivoAlteracaoIndicadorEconomicoEnum;
import br.com.sgpv2.service.indicadoreconomico.IndicadorEconomicoService;

@Controller
public class IndicadorEconomicoController {

	@Autowired
	private IndicadorEconomicoService indicadorEconomicoService; 
	
	
	@RequestMapping(value = "indicadorEconomico/pesquisar", method = RequestMethod.GET)
	public String pesquisar(Model model, HttpServletRequest request) throws Exception {
		String ano = request.getParameter("anoPesquisa");
		String mes = request.getParameter("mesPesquisa");
		
		List<IndicadorEconomico> indicadores = indicadorEconomicoService.consultarPorMesAno(mes, ano);
		model.addAttribute("indicadores", indicadores);
		
		model.addAttribute("meses", ContribuicaoPrevidenciariaController.criarListaMeses());
		model.addAttribute("anos", ContribuicaoPrevidenciariaController.criarListaAnos());
		
		return "indicadorEconomico/indicadores";
	}
	
	@RequestMapping(value = "indicadorEconomico/incluir", method = RequestMethod.GET)
	public String getInclusaoPage(Model model) throws Exception {
		
		model.addAttribute("indicadorBean", new IndicadorEconomico());
		model.addAttribute("anos", ContribuicaoPrevidenciariaController.criarListaAnos()); //FIXME TVG - Mudar para Util.
		model.addAttribute("meses", ContribuicaoPrevidenciariaController.criarListaMeses()); //FIXME TVG - Mudar para Util.
		model.addAttribute("indicadores", IndicadorEnum.values()); 
		model.addAttribute("motivos", MotivoAlteracaoIndicadorEconomicoEnum.values()); 
		model.addAttribute("titleBotaoAcao", "Salvar");
		
		return "indicadorEconomico/indicadorEconomico-incluir";
	}
	
	@RequestMapping(value = "indicadorEconomico/incluirIndicador", method = RequestMethod.POST)
	public String salvar(IndicadorEconomico indicadorEconomico) throws Exception {
		
		indicadorEconomicoService.salvar(indicadorEconomico);
		return "redirect:pesquisar";
	}
	
	@RequestMapping(value = "indicadorEconomico/excluir/{pk}", method = RequestMethod.GET)
	public String excluir(@PathVariable Integer pk) throws Exception {
		IndicadorEconomico indicador = indicadorEconomicoService.buscar(pk);
		
		if(indicador !=null){
			indicadorEconomicoService.remover(indicador);
		}
		
		return "redirect:../pesquisar";
	}
	
	@RequestMapping(value = "/indicadorEconomico/atualizar/{pk}", method = RequestMethod.GET)
	public String getAlteracaoPage(@PathVariable Integer pk,Model model) throws Exception {
		IndicadorEconomico indicador = indicadorEconomicoService.buscar(pk);
		
		model.addAttribute("indicadorBean", indicador);
		model.addAttribute("anos", ContribuicaoPrevidenciariaController.criarListaAnos());
		model.addAttribute("meses", ContribuicaoPrevidenciariaController.criarListaMeses());
		model.addAttribute("indicadores", IndicadorEnum.values()); 
		model.addAttribute("motivos", MotivoAlteracaoIndicadorEconomicoEnum.values()); 
		model.addAttribute("titleBotaoAcao", "Alterar");
		
		return "indicadorEconomico/indicadorEconomico-alterar";
	}
	
	@RequestMapping(value = "indicadorEconomico/alterarIndicador", method = RequestMethod.POST)
	public String alterar(IndicadorEconomico indicadorEconomico) throws Exception {
		indicadorEconomicoService.alterar(indicadorEconomico);		
		
		return "redirect:pesquisar";
	}
}
